home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / Multiprocessing.p < prev    next >
Text File  |  1996-05-01  |  4KB  |  117 lines

  1. {
  2.      File:        Multiprocessing.p
  3.  
  4.      Contains:    Multiprocessing interfaces
  5.  
  6.      Version:    Technology:    System 8
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Multiprocessing;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __MULTIPROCESSING__}
  28. {$SETC __MULTIPROCESSING__ := 1}
  29.  
  30. {$I+}
  31. {$SETC MultiprocessingIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __CODEFRAGMENTS__}
  38. {$I CodeFragments.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __KERNEL__}
  41. {$I Kernel.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __TIMING__}
  44. {$I Timing.p}
  45. {$ENDC}
  46.  
  47. {$PUSH}
  48. {$ALIGN POWER}
  49. {$LibExport+}
  50.  
  51. {$IFC FOR_SYSTEM7_ONLY }
  52.  
  53. TYPE
  54.     MPTaskID = ^LONGINT;
  55.     MPQueueID = ^LONGINT;
  56.     MPTaskOptions                        = UInt32;
  57.     TaskProc = ProcPtr;  { FUNCTION TaskProc(parameter: UNIV Ptr): OSStatus; C; }
  58.  
  59.  
  60. CONST
  61.     kDurationImmediate            = 0;
  62.     kDurationForever            = $7FFFFFFF;
  63.  
  64. {$ENDC}
  65. {$IFC FOR_SYSTEM8_PREEMPTIVE }
  66.  
  67. TYPE
  68.     MPTaskID                            = TaskID;
  69.     MPQueueID                            = KernelQueueID;
  70.     MPTaskOptions                        = TaskOptions;
  71. {$ENDC}
  72. {$IFC FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE }
  73.  
  74. TYPE
  75.     MPSemaphoreID = ^LONGINT;
  76.     MPCriticalRegionID = ^LONGINT;
  77.     MPSemaphoreCount                    = UInt32;
  78.  
  79. CONST
  80.     kMPNoID                        = 0;
  81.  
  82. {$ENDC}
  83. {$IFC FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE }
  84. FUNCTION MPProcessors: UInt32; C;
  85. FUNCTION MPCreateTask(taskEntryPoint: TaskProc; taskParameter: UNIV Ptr; stackSize: ByteCount; notifyQ: MPQueueID; notifyParameter1: UNIV Ptr; notifyParameter2: UNIV Ptr; options: MPTaskOptions; VAR newTask: MPTaskID): OSStatus; C;
  86. FUNCTION MPTerminateTask(task: MPTaskID; terminationStatus: OSStatus): OSStatus; C;
  87. PROCEDURE MPExit(terminationStatus: OSStatus); C;
  88. FUNCTION MPCurrentTaskID: MPTaskID; C;
  89. PROCEDURE MPYield; C;
  90. FUNCTION MPCreateQueue(VAR queue: MPQueueID): OSStatus; C;
  91. FUNCTION MPDeleteQueue(queue: MPQueueID): OSStatus; C;
  92. FUNCTION MPNotifyQueue(queue: MPQueueID; param1: UNIV Ptr; param2: UNIV Ptr; param3: UNIV Ptr): OSStatus; C;
  93. FUNCTION MPWaitOnQueue(queue: MPQueueID; VAR param1: UNIV Ptr; VAR param2: UNIV Ptr; VAR param3: UNIV Ptr; timeout: Duration): OSStatus; C;
  94. FUNCTION MPCreateSemaphore(maxVal: MPSemaphoreCount; initVal: MPSemaphoreCount; VAR semaphore: MPSemaphoreID): OSStatus; C;
  95. FUNCTION MPCreateBinarySemaphore(VAR semaphore: MPSemaphoreID): OSStatus; C;
  96. FUNCTION MPWaitOnSemaphore(semaphore: MPSemaphoreID; timeout: Duration): OSStatus; C;
  97. FUNCTION MPSignalSemaphore(semaphore: MPSemaphoreID): OSStatus; C;
  98. FUNCTION MPDeleteSemaphore(semaphore: MPSemaphoreID): OSStatus; C;
  99. FUNCTION MPCreateCriticalRegion(VAR region: MPCriticalRegionID): OSStatus; C;
  100. FUNCTION MPEnterCriticalRegion(region: MPCriticalRegionID; timeout: Duration): OSStatus; C;
  101. FUNCTION MPExitCriticalRegion(region: MPCriticalRegionID): OSStatus; C;
  102. FUNCTION MPDeleteCriticalRegion(region: MPCriticalRegionID): OSStatus; C;
  103. FUNCTION MPAllocate(size: ByteCount): LogicalAddress; C;
  104. PROCEDURE MPFree(block: LogicalAddress); C;
  105. PROCEDURE MPBlockCopy(sourcePtr: LogicalAddress; destPtr: LogicalAddress; bytes: ByteCount); C;
  106. {$ENDC}
  107. {$ALIGN RESET}
  108. {$POP}
  109.  
  110. {$SETC UsingIncludes := MultiprocessingIncludes}
  111.  
  112. {$ENDC} {__MULTIPROCESSING__}
  113.  
  114. {$IFC NOT UsingIncludes}
  115.  END.
  116. {$ENDC}
  117.